﻿using PortfolioApp.DataModels;
using PortfolioApp.Web.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace PortfolioApp.Web.DbAdapters
{
    public interface IPortfolioAppAdapter
    {
        // Create post
        Post CreatePost(Post post);

        // Get post/posts/posts for a page/posts for user
        Post GetPost(int id);
        List<Post> GetAllPosts();
        void GetPostsForPage(PostIndexVM vm);
        List<Post> GetPostsForUser(string id);

        // Update post
        Post UpdatePost(Post post);

        // Delete post
        Post DeletePost(Post post);

        // Create project
        Project CreateProject(Project project);

        // Get project/projects/projects for user
        Project GetProject(int id);
        List<Project> GetAllProjects();
        void GetProjectsForPage(ProjectIndexVM vm);
        List<Project> GetProjectsForUser(string id);

        // Update project
        Project UpdateProject(Project project);

        // Delete project
        Project DeleteProject(Project project);

        string GetUserName(string id);

    }
}
